﻿using System;
using System.Collections.Generic;
using System.Text;

namespace IllustratedCsharp7_ch07DeepUnderstandingOfClasses
{
    /// <summary>
    ///静态构造函数初始化类级别的项
    /// 在引用任何静态成员之前
    /// 在创建任何实例之前
    ///静态构造函数在以下方面与实例构造函数类似
    /// 静态构造函数的名称和类名称相同。
    /// 构造函数不能有返回值
    ///静态构造函数在以下方面和实例构造函数不同。
    /// 静态构造函数声明中使用static关键字
    /// 类只能有一个静态构造函数，而且不能还参数
    /// 静态构造函数不能有访问修饰符
    /// </summary>

    class RandoNumberClass
    { 
        private static Random RandomKey; //私有静态字段
        //静态构造函数
        static RandoNumberClass()
        {
            RandomKey = new Random();   //初始化RandomeKey
        }
        public int GetRandomNumber()
        {
            return RandomKey.Next();
        }
    }
    class Chapt7_12StaticConstructor
    {
        static void Main()
        {
            RandoNumberClass a = new RandoNumberClass();
            RandoNumberClass b = new RandoNumberClass();

            Console.WriteLine("Next Random #：{0}",a.GetRandomNumber());
            Console.WriteLine($"Next Random #：{b.GetRandomNumber()}");
        }
    }
}
